System and method for drag-and-drop graph building with live feedback

ABSTRACT

Computer-implemented systems and methods provide near real-time graph data feedback to a user during a drag-and-drop graph display creation process. A graph creation display region is displayed, where a graph display data structure contains associations between graph display components and variables, the associations in the graph display data structure defining what graph components are to be displayed on the graph creation display region. The display device contains a plurality of graph hotspot regions that are associated with a graph display component, where using the user manipulation device to drag a variable from the variable selection region to the graph hotspot results in an association between the graph display component and the dragged variable. While the variable is being dragged over a hotspot, the graph creation display region is modified to provide near real-time feedback to the user of a temporary association between the graph display component and the dragged variable.

TECHNICAL FIELD

This document relates generally to graph data visualization, and moreparticularly to graph construction using real-time feedback.

BACKGROUND

Interactive graph construction typically involves assigning variables toroles and clicking a “Go” button to create the graph. Some interfacesmay be more interactive and update the graph after each variable isassociated with a role. However, there is still some measure ofindirection for which the user must account. This inability to foreseethe resulting graph structure prior to assigning a variable to a roleintroduces indecisiveness and inefficiency into the graph creationprocess, which may become significant when extrapolated over thecreation of large numbers of complicated graphs.

SUMMARY

In accordance with the teachings provided herein, computer-implementedsystems and methods are disclosed for providing immediate or nearreal-time graph data feedback to a user during a drag-and-drop graphdisplay creation process. The systems and methods may include displayingon a computer-human interface display device a graph creation displayregion that includes at least one axis, where a graph display datastructure is configured to be stored in a computer-readable storagemedium and to contain associations between graph display components andvariables, and the associations contained in the graph display datastructure define what graph components are to be displayed on the graphcreation display region. A variable selection region may be displayed onthe computer-human interface display device for selection via a usermanipulation device of a variable to be graphically displayed on thecomputer-human interface device, where the computer-human interfacedisplay device contains a plurality of graph hotspots, a graph hotspotbeing a region on the computer-human interface display that isassociated with a graph display component. Using the user manipulationdevice to drag a variable from the variable selection region to thegraph hotspot may result in a temporary association between theassociated graph display component and the dragged variable beingcreated in the graph display data structure. The display of the graphcreation display region may be modified while the variable is beingdragged over a hotspot on the computer-human interface display device inorder to provide immediate or near real-time feedback to the user of atemporary association between the associated graph display component andthe dragged variable.

As another example, a system and method are configured to provideimmediate or near real-time graph data feedback to a user during adrag-and-drop graph display creation process. The system may includecomputer-readable instructions for displaying on a computer-humaninterface display device a graph creation display region that includesat least one axis, where a graph display data structure is configured tobe stored in a computer-readable storage medium and to containassociations between graph display components and variables, and wherethe associations contained in the graph display data structure definewhat graph components are to be displayed on the graph creation displayregion. The system may further include computer-readable instructionsfor displaying on the computer-human interface display device a variableselection region for selection via a user manipulation device of avariable to be graphically displayed on the computer-human interfacedevice, where the computer-human interface display device contains aplurality of graph hotspots, a graph hotspot being a region on thecomputer-human interface display that is associated with a graph displaycomponent. Using the user manipulation device to drag a variable fromthe variable selection region to the graph hotspot may result in atemporary association between the associated graph display component andthe dragged variable being created in the graph display data structure.The system may also include computer-readable instructions for modifyingdisplay of the graph creation display region while the variable is beingdragged over a hotspot on the computer-human interface display device inorder to provide immediate or near real-time feedback to the user of atemporary association between the associated graph display component andthe dragged variable.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a computer-implemented environment where users caninteract with a live feedback drag-and-drop graph builder.

FIG. 2 depicts memory repository contents in a live feedbackdrag-and-drop graph builder environment.

FIGS. 3A and 3B depict a block diagram depicting interactions between auser and a live feedback drag-and-drop graph builder environment.

FIG. 4 depicts a model system and a view system for use in a livefeedback drag-and-drop graph builder environment.

FIG. 5 depicts a flow diagram for placing a variable in a graph via adrag-and-drop user interface.

FIG. 6 depicts a table identifying appropriate element descriptors forplotting data points based on the modeling types of the X and Yvariables.

FIG. 7 depicts an example graph generated using a live feedbackdrag-and-drop graph builder.

FIG. 8 depicts an example graph generated using a live feedbackdrag-and-drop graph builder having highlighted graph components.

FIG. 9 is a table depicting available graph hotspots based on existingassociations between variables and graph components.

FIG. 10 depicts sample drag zone hotspots in a graph creation displayregion.

FIG. 11 depicts sample drop zone hotspots in a graph creation displayregion.

FIG. 12 depicts a graph having one Y variable, two group X variables,and one group Y variable.

FIG. 13 depicts graph components of a graph having one Y variable, twogroup X variables, and one group Y variable.

FIG. 14 depicts drag zone hotspots of a graph having one Y variable, twogroup X variables, and one group Y variable.

FIG. 15 depicts drop zone hotspots of a graph having one Y variable, twogroup X variables, and one group Y variable.

FIG. 16 depicts an initial state of a graph creation display region.

FIG. 17 depicts a graph creation display region following dragging aheight variable over a Y-axis hotspot.

FIG. 18 depicts a graph creation display region following a subsequentdragging of the height variable over an X-axis hotspot.

FIGS. 19A and 19B depict a graph creation display region following asubsequent dropping of the height variable on the X-axis hotspot.

FIG. 20 depicts a graph creation display region during a subsequentselection and dragging of the weight variable from the variableselection region.

FIGS. 21A and 21B depict a graph creation display region following afurther dragging of the weight variable to a Y-axis hotspot.

FIG. 22 depicts a graph creation display region following a subsequentdropping of the weight variable on the Y-axis hotspot.

FIG. 23 depicts a graph creation display region during a draggingoperation making a temporary association between a sex variable and agroup X hotspot.

FIG. 24 depicts a graph creation display region during a subsequentdragging of the sex variable to an overlay hotspot.

FIG. 25 depicts a graph creation display region following dropping thesex variable on the overlay hotspot.

FIG. 26 depicts a graph creation display region following picking up thesex variable from the overlay drag zone hotspot and dragging the sexvariable back over the group X drop hotspot.

FIG. 27 depicts a graph creation display region following dropping thesex variable on the group X hotspot.

FIGS. 28A and 28B depict a graph creation display region followingdragging an age variable onto an insert after hotspot on the Y-axis.

FIG. 29 depicts a graph creation display region during a subsequentdragging of the age variable over a replace hotspot associated with theY-axis graph component.

FIG. 30 depicts a graph creation display region following dragging theage variable onto an insert before hotspot on the Y-axis.

FIG. 31 depicts a graph creation display region following dragging theage variable onto a merge hotspot on the Y-axis.

FIG. 32 depicts a graph creation display region following dragging theage variable onto an insert before hotspot on the X-axis.

FIG. 33 depicts a graph creation display region following a subsequentdragging of the age variable onto the group Y hotspot 482.

FIG. 34 depicts a graph creation display region following a dragging ofthe age variable onto the insert before group X hotspot.

FIG. 35 depicts a graph creation display region following a dragging ofthe age variable onto the group X replace hotspot.

FIG. 36 depicts a graph creation display region following a dragging ofthe age variable over the group X insert after hotspot.

FIG. 37 depicts a graph creation display region following a dragging ofthe age variable over the overlay hotspot.

FIG. 38 depicts a graph creation display region following dropping theage variable on the overlay hotspot.

FIG. 39 depicts a computer-implemented method for providing immediate ornear real-time graph data feedback to a user during a drag-and-dropgraph display creation process.

FIG. 40 depicts a computer-implemented method for providing immediate ornear real-time graph data feedback to a user during a drag-and-dropgraph display creation process.

FIG. 41 is a block diagram depicting an environment wherein requesterscan interact with a live feedback drag-and-drop graph builder.

DETAILED DESCRIPTION

FIG. 1 depicts a computer-implemented environment where users caninteract with a live feedback drag-and-drop graph builder. The livefeedback drag-and-drop graph builder 12 mitigates indirection in graphdisplay creation by providing direct and immediate graph manipulation,allowing more efficient data exploration. The live feedbackdrag-and-drop graph builder 12 increases the level of interactivity byconstructing a graph as each variable is being dragged over varioushotspots on the graph area, such that immediate or near-real time (i.e.,allowing for a limited processing time for graph creation display regionpreview generation) feedback of the effect of graph manipulations on agraph creation display region. A user 14 is able to immediately see theresult of dropping a variable onto a hotspot without actually committingto the action. A user 14 may then continue dragging the variable toanother hotspot, and the graph is immediately reconstructed as thevariable is moved.

The computer-implemented environment 10 of FIG. 1 provides a user 14with a user viewable display 16, or computer-human interface displaydevice, for visualizing, among other things, a graph creation displayregion for constructing a data display graph by associating variableswith graph components. The contents of the user viewable display 16 areprovided via commands from a processor 18 running instructions thatinclude instructions for the live feedback drag-and-drop graph builder12. The live feedback drag-and-drop graph builder 12 provides anapplication for user creation of a graph display via pointer device 20,keyboard, or other input manipulation device.

The live feedback drag-and-drop graph builder 12 is responsive to a datastore 24 and/or other volatile or non-volatile memory 22. These memoryrepositories 24, 22 may contain variable data for plotting or otherincorporation into the graph creation display region as well datastructures for tracking associations between variables and graph displaycomponents. Examples of memory repositories 24, 22 can include flatfiles, relational database management systems (RDBMS), amulti-dimensional database (MDDB), such as an Online AnalyticalProcessing (OLAP) database, etc.

FIG. 2 depicts memory repository contents in a live feedbackdrag-and-drop graph builder environment. A user 32 is provided a userviewable display 34 that includes a graph creation display region forspecifying the construction of a graph for data display. The graphcreation display region is provided via a live feedback drag-and-dropgraph builder 36 executed on a processor 38. Using a pointing device 40or other user input mechanism, a user 32 dictates associations betweenvariables and graph display components that define the graph creationdisplay region. A graph is the entire area being constructed and mayincluded axes, legend, titles, grouping headers, and the graph panels. Agraph panel is an area of the graph that contains data representationssuch as symbols, lines, and bars. For example, in a Cartesian coordinategraph, there may be one panel for each combination of X position, Yposition, and grouping levels. While many of the examples describedherein depict a Cartesian implementation, the concepts may equally applyto other coordinate systems such as cylindrical, spherical, and others.

The live feedback drag-and-drop graph builder of thecomputer-implemented environment 30 is responsive to a data store 42that contains variable data for plotting or other incorporation into thegraph creation display region on the user viewable display 34. The livefeedback drag-and-drop graph builder 36 may also be responsive to amemory 44, where the live feedback drag-and-drop graph builder 36maintains a main graph display data structure that defines graphcomponents to be displayed on the graph creation display region. Thememory 44 may also contain one or more temporary graph display datastructures that could be used to store temporary associations betweengraph display components and variables during a user manipulation devicedrag operation. These temporary associations may also be stored in themain graph display data structure along with an indicator of theirtemporary nature.

FIGS. 3A and 3B depict a block diagram depicting interactions between auser and a live feedback drag-and-drop graph builder environment. Acomputer-human interface display device 52, or user viewable display, isprovided to a user 54. The computer-human interface display device 52includes a graph creation display region 56 for display of a graph 58facilitating user association of variables to graph display components60, such as X-axis, Y-axis, group X, group Y, overlay, and othercomponents. The live feedback environment 50 may also include a variableselection region 62 for selection via a user manipulation device 63 of acandidate graph variable 64 to be graphically displayed on the graph 58.

An association 66 between a candidate graph variable 64 and a graphdisplay component 60 may be made via a manipulation device dragoperation 68 of a candidate graph variable 64 from the variableselection region 62 or a drag hotspot to a graph drop hotspot 70. Agraph hotspot is a region on the computer-human interface display 52that is associated with a graph display component 60. By dragging acandidate graph variable 64 over a graph hotspot 70, a temporaryassociation 66 is made between the associated graph display component 60and the candidate graph variable 64 in a graph display data structure72. A candidate graph variable 64 that is already associated with agraph display component 60 may also be dragged from a hotspot associatedwith that graph display component 60 for association with a differenthotspot.

A graph display data structure 72 is stored in a computer-readablestorage medium and contains associations between graph displaycomponents 66 and candidate graph variables 64. A temporary association66 may be made in a temporary graph display data structure, or in a maingraph display data structure with an indicator of the temporary natureof the association, or via other mechanism. A temporary association maybe made persistent via dropping the candidate variable 64 on the currentgraph hotspot 70 over which the candidate graph variable 64 has beendragged. A dragging feedback generation program 74 provides immediate ornear real-time dragging feedback of the temporary associations createdvia a user display manipulation detection program 76 that senses usercommands of a user manipulation device 63 via a data processor 78.

FIG. 4 depicts a model system and a view system for use in a livefeedback drag-and-drop graph builder environment. To accommodate rapidchanges corresponding to dragging and dropping operations and associatedgraph updates and manipulations, the model system 92 of the collectionof systems 90 may be implemented using a relatively flat structure. Adrag-and-drop controller makes changes to the graph variables list 94,while the graph data 96 and graph elements 98 are updated as needed forthe view. Each graph variable 94 contains a data capture from a databasecolumn 100 and associates the database column 100 with a graph role andposition 102. The graph roles identify the role a variable plays in agraph, and may include X-axis, Y-axis, group X, group Y, group wrap, andoverlay. The graph data 96 may contain sorted X and Y data valuespartitioned by any grouping and overlay variables that are present inthe model. A graph element is a data representation within a graph panelthat may consist of one or more symbols, lines, or filled areas, and thegraph elements list is a list of potential representations for the datain each graph pane, which may be realized by the view when needed.

The view system 104 contains logic for creation and positioning of graphcomponents 106 and graph hotspots 108 for use by a drag-and-dropcontroller. Each graph component 106 serves as a view for one or moregraph variables 94. Each graph hotspot defines an area on the displayand associates a role and an action with it.

The drag-and-drop controller may hold a variable from the database.Whenever a variable is dragged by a mouse or other user manipulationdevice over a graph hotspot 108 the controller adds the correspondinggraph variable 94 to the model and marks the graph variable 94 astentative until the mouse is released. Graph components 106 thatcorrespond to the tentative graph variables are drawn on the graph.These graph components 106 may be drawn with a translucent mask or otherhighlight to identify the pending change to the graph. A system maydictate that a pending change not alter existing graph hotspots 108, asgraph hotspots 108 may be dependent on current associations betweengraph variables 94 and graph components 106. This avoids a graph hotspot108 being moved from under the drag-and-drop controller. The graphvariable 94 being added to the model is constructed by combining thedatabase column from the drag source and the role and action informationfrom the graph hotspot 108. If the user manipulation device leaves thegraph hotspot 108, then the controller may remove the graph variable 94from the model and update the view accordingly.

FIG. 5 depicts a flow diagram for placing a variable in a graph via adrag-and-drop user interface. The process 120 may begin at 122 where adatabase column associated with a database 124 is clicked upon anddragged from a variable selection region on a computer-human interfacedisplay device. A database variable is created at 126 to capture theaspects of the database column needed for the graph 127, which mayinclude the modeling type (e.g., categorical or continuous) and the dataitself and a sort index. The process may alternately begin at 128 wherea user clicks on a drag zone hotspot in the graph to start moving anexisting graph variable to a different place. The existing databasevariable component of the dragged graph variable will be preservedthough other parts of the graph variable may be discarded.

A determination is made at 130 as to whether the mouse or other usermanipulation device has moved during a drag operation. As the mouse ismoved with the selection mechanism activated (e.g., with the button helddown on a mouse), the graph state 134 is updated at 132 based on whichgraph hotspot the mouse is currently over, and the graph is redrawn. Thegraph state 134 may include variables to be displayed, drag zonesconsisting of hotspots already having an associated graph variable, dropzones consisting of hotspots where the dragged variable may be dropped,and element descriptors. If the mouse is not over a drop zone hotspot at132, then the variable is removed from the graph state. As noted above,drop zones may not be updated at 132 to avoid the removal of a drop zonefrom under the mouse.

Upon release of the mouse at 136, previous temporary updates to themodel are preserved, as indicated at 138, and drop zone hotspots may beupdated based on the rest of the graph state 134. A single drag and dropoperation has, thus, been completed, as indicated at 140, and theprocess may then be repeated with other dragging and droppingoperations.

As noted above, a graph state may be defined in part by elementdescriptors. An element descriptor is a part of the graph state that isable to create a particular graph element. Element descriptors maycontain references to graph variables and collect data from the graphvariables and provide the data to the graph element being constructed.An X/Y variable combination may correspond to a set of elementdescriptors that are appropriate for those graph variables. Elementdescriptors may be active or inactive. Active element descriptors createcorresponding graph elements that appear in the graph panels, whileinactive element descriptors may be made available for activation by theuser, for example, via a contextual popup menu.

The modeling types (e.g., categorical or continuous) of the variablesmay be used to determine the set of element descriptors that areappropriate. In a determination of the appropriate element descriptorsfor a given X/Y variable combination, the variables may be cast asresponses and factors. The Y variable may be denoted as the response,with the X variable being labeled the factor. In some cases, where no Yvariable is specified or if there is a single categorical Y variable andcontinuous X variables, the response/factor casting may be reversed. Ifeither the X or Y role contains more than one variable, then the firstvariable's modeling type may be used for all of the variables.

FIG. 6 depicts a table identifying appropriate element descriptors forplotting data points based on the modeling types of the X and Yvariables. For example, if both the factor and the response arecontinuous variables, then the points, line, smoother, and bar elementdescriptors are deemed appropriate. In contrast, where the factor iscategorical and the response is continuous, the points, box plot, line,smoother, bar, and histogram element descriptors are identified asappropriate.

The points element descriptor may be set as a default, as it isappropriate for all X/Y variable combinations. This may be varied bypreference or in special cases, such as where a large amount of data(e.g., over 500 points) are to be plotted. In high data scenarios, ifboth the factor and response are continuous, then the smoother elementdescriptor may be initially set as active, with the second listedappropriate element descriptor initialized otherwise. A system may beconfigured to allow a user to select from among appropriate elementdescriptors, such as via a context menu.

Data structures, such as those described above with reference to FIG. 4,are used in creating and updating the graph displayed to a user. When agraph variable is added to the model, the data for the graph variablemay be immediately scored. Scoring consists of sorting the data intounique values and determining the data's range and modeling type. Datafor all variables (e.g., X and Y variables) may be sorted andpartitioned by the levels of each grouping variable (e.g., group X,group Y, group Wrap, and overlay). These sorting results may be sharedby element descriptors for efficiency.

Each time the graph state changes, such as through the addition of agraph variable, the graph may be updated. The data may be sorted andpartitioned according to the grouping variables. Element descriptors maybe made, and active element descriptors may be identified based ondefaults or previous user choices. Graph display objects that correspondto graph variables may be made along with placeholder graph displayobjects for graph roles that have no graph variables. Graph elements maythen be made from active element descriptors, with graph axis scalesbeing set to match the graph elements. User customizations, such as sizeand color changes may be made, and graph hotspots corresponding to dragand drop zones may be defined. Certain changes to the graph state mayrequire that only some of these steps be taken or that steps be executedin different orders. For example, if a user changes an active elementdescriptor without changing the graph variables, then only the latersteps need be performed. Similarly, a user making a cosmetic change mayonly require refreshing of those graph components affected by thecosmetic change.

FIG. 7 depicts an example graph generated using a live feedbackdrag-and-drop graph builder. On the example graph 160, a height variablehas been assigned to the X-axis 162, a weight variable has been assignedto the Y-axis 164, an age variable has been assigned to the group wraprole 166, and a sex variable has been assigned to the overlay role 168.The association of the height variable with the X-axis 162 causes datato be plotted according to the height variable on the X-axis 162 withthe X-axis 162 being scaled accordingly. Similarly, the association ofthe weight variable with the Y-axis 164 causes data to be plottedaccording to the weight variable on the Y-axis 164 with the Y-axis 164being scaled accordingly. Associating the age variable with the groupwrap role 166 generates a single graph panel 170 for each age value, andassociating the sex variable with the overlay role 168 instructs thesystem to plot a best fit representation of the data for the male sex172 and the female sex 174 on each graph panel.

FIG. 8 depicts an example graph generated using a live feedbackdrag-and-drop graph builder having highlighted graph components. On theexample graph 180, the single X variable, height, is represented by twoX axis components 182. The single Y variable, weight, is represented bythree Y axis components 184. The single group wrap variable, age, isrepresented by several components 186. A separate graph panel component188 is depicted for each combination of X, Y, and levels of the groupwrap variable. With single combinations for both the height and weightvariables and six levels of the age variable, six graph panels 188 aredisplayed. The default title component 190 may not correspond to any onegraph variable but is instead determined from the names of all graphvariables utilized.

FIG. 9 is a table depicting available graph hotspots based on existingassociations between variables and graph components. As noted above, adetermination as to which hotspot regions are to be incorporated on thegraph creation display region may be made in part based on existingassociations. For example, it may not make sense to have a replacehotspot or an insert before hotspot on the X-axis if a variable is notcurrently associated with the X-axis. FIG. 9 lists a series of graphroles, and appropriate graph hotspots that may be incorporated by thelive feedback drag-and-drop graph builder according to existing variableassociations with those graph components.

FIG. 10 depicts sample drag zone hotspots in a graph creation displayregion. The graph creation display region 200 depicts a series of graphpanels generated in response to associating a height variable with theX-axis 202, a weight variable with the Y-axis 204, an age variable withthe group wrap role 206, and a sex variable with the overlay role 208.Having made these associations, the hotspots associated with these rolesmay be made drag zones, where a user may select the drag zone and dragthe associated variable off of the hotspot. The dragged variable may bedragged to another hotspot to create a new association, or the draggedvariable may be removed such that the dragged variable's priorassociation is removed from the graph display data structures.

FIG. 11 depicts sample drop zone hotspots in a graph creation displayregion. As noted above, which drop zone hotspots are made available maybe determined in part based upon existing associations between variablesand graph components. This is illustrated in the graph creation displayregion 210 of FIG. 11, where both the X-axis and Y-axis have insertbefore 212, insert after 214, replace 216, and merge 218 hotspotsbecause of prior associations between the height and weight variablesand the X and Y axes, respectively. The group wrap role includes areplace group wrap 220 and an order group wrap 222 hotspot. An ordervariable allows specification of the ordering of graph panels associatedwith the group wrap variable. For example, if the group X component wasassociated with the U.S. States variable, the order role could beassociated with the population variable, which would display theindividual state graph panels sorted by state population. The overlayrole includes a replace overlay hotspot 224, and the group Y role showsan add group Y hotspot 226 based on the non-existence of a variableassociation.

FIG. 12 depicts a graph having one Y variable, two group X variables,and one group Y variable. On the graph 230, a Y position variable hasbeen associated with the Y-axis 232, while no variables have beenassociated with the X-axis 234. Two categorical variables, seat anddynamo, have been associated with the group X role, with the dynamovariable, having on and off states, being nested beneath the seatvariable, having up and down states. The group X role 236 functions incontrast to the group wrap role by dividing graph panels only along theX-axis 234, where the group wrap role may divide graph panels along boththe X-axis 234 and the Y-axis 232 in a wrapping manner, as shown in FIG.7. The hbars categorical variable, having up and down states, isassociated with the group Y role 238.

FIG. 13 depicts graph components of a graph having one Y variable, twogroup X variables, and one group Y variable. The graph creation displayregion includes empty X-axis components 242 and a Y-axis 244 componentassociated with the Y position variable. The group X role has twocomponents 246 corresponding to the seat variable and the dynamovariable nested within the seat variable. The group Y component 248contains an association with the hbars variable, and the legendcomponent 250 has no variable association. The graph creation displayregion 240 includes separate graph panels for each combination of X, Y,and levels of the group X, and group Y variables resulting in 8(1×1×2×2×2=8) graph panels 252.

FIG. 14 depicts drag zone hotspots of a graph having one Y variable, twogroup X variables, and one group Y variable. On the graph 260, eachgraph role having an associated variable becomes a drag zone from whichthe variable may be dragged and moved to another graph role or removedfrom the graph 260. For example, the Y position variable associated withthe Y-axis may be dragged from the associated drag zone 262. Similarly,the seat variable may be dragged from a first group X drag zone 264, thedynamo variable may be dragged from a second group X drag zone 266, andthe hbars variable may be dragged from the group Y drag zone 268.

FIG. 15 depicts drop zone hotspots of a graph having one Y variable, twogroup X variables, and one group Y variable. On the graph 270, theX-axis contains add drop zone hotspots 272 based on the non-existence ofa variable association. The Y-axis contains insert before 274, insertafter 276, replace 278, and merge 280 hotspots based on the priorassociation of the Y position variable with the Y-axis. The group X andgroup Y roles include insert before 282, insert after 284, replace 286,and order 288 drop hotspots based on the existence of variableassociations, while the overlay hotspot 290 is an add drop zone based onthe non-existence of a variable association.

FIGS. 16-38 depict an example walkthrough of graph creation operationsusing a live feedback drag-and-drop graph builder. FIG. 16 depicts aninitial state of a graph creation display region. The graph creationdisplay region 300 includes a graph panel 302, an X-axis 304, a Y-axis306, and a variable selection region 308. The variable selection region308 provides a variable bank from which a user may select variables anddrag them to graph hotspots to create associations between the variablesand graph components associated with the hotspots. A user has selectedand begun dragging the height variable from the variable selectionregion, as indicated at 310.

FIG. 17 depicts a graph creation display region following dragging aheight variable over a Y-axis hotspot. The height variable, selected anddragged from the variable selection region 322 of the graph creationdisplay region 320, is positioned over the Y-axis hotspot 324 through adragging operation of a user manipulation device, such as a mouse. Thelive feedback drag-and-drop graph builder provides immediate or nearreal-time feedback as to what the resulting graph would look like if theassociation between the height variable and the Y-axis graph displaycomponent were made persistent by dropping the height variable on theY-axis hotspot 324. The live feedback drag-and-drop graph builder plotsdata 326 as it would be plotted if the height variable were dropped onthe Y-axis hotspot 324. The live feedback drag-and-drop graph buildermay limit its plotting to a portion of the data if the data isvoluminous to improve graph preview generation speed. The live feedbackdrag-and-drop graph builder may also include a highlight, shown at 328,to clearly identify the new association that is being provisionally madebased on the current dragging operation. This highlight may include achange in border, background/foreground color, opacity, or otherattributes of the area associated with the graph component.

The preview illustrated in FIG. 17 may be created by including theassociation between the height variable and the Y-axis graph componentin a graph display data structure along with an indicator, such as abit, denoting the temporary nature of the association. The preview mayalso be created through use of a temporary graph display data structurethat is created upon dragging a variable over a hotspot, where the graphcreation display region 320 is modified according to the temporary graphdisplay data structure for the duration of the dragging operation. Upona dropping operation on a hotspot, a main graph display data structuremay be modified to reflect the contents of the temporary graph displaydata structure. The temporary graph display data structure then may bediscarded.

FIG. 18 depicts a graph creation display region following a subsequentdragging of the height variable over an X-axis hotspot. Upon draggingthe height variable off of the Y-Axis hotspot 332, the graph creationdisplay region 330 reverts to its prior state, similar to that depictedin FIG. 16. When the height variable is further dragged onto the X-axishotspot 334, a temporary association is made between the height variableand the X-axis graph component, such that a preview is generated thatplots all or a portion of the height related data 336 as well ashighlighting of an area 338 associated with the X-axis component suchthat a user may easily discern the proposed changes in the graph displayif the association between the height variable and the X-axis componentwere made persistent by dropping the height variable on the X-axishotspot 334.

FIG. 19A depicts a graph creation display region following a subsequentdropping of the height variable on the X-axis hotspot. Upon dropping theheight variable on the X-axis hotspot 333, the association between theheight variable and the X-axis graph component is made persistent.Making the association persistent may be accomplished by removing anindicator of the temporary nature of the association from the graphdisplay data structure, or by copying the association from a temporarygraph display data structure to a main graph display data structure. Theplotting of the height related data remains, as shown at 335. If only aportion of the height related data was plotted during the previewassociated with the dragging operation, then the full set of data may beplotted after dropping the height variable in FIG. 19A. Thehighlighting, depicted at 338 in FIG. 18, that indicated the temporarynature of the association between the height variable and the X-axisgraph component is removed following the drop operation signifying thenow persistent nature of the association.

FIG. 19B depicts three tables identifying the state of the graphfollowing the dropping of the height variable on the X-axis hotspot. Thefirst table 337 illustrates the association between the variable,height, and the graph component, X. The first table 337 also illustratesthat the association is not of a temporary (tentative) nature. Themiddle table 339 describes drop zone hotspots that are available on thegraph creation display region based upon the associations listed in thefirst table 337. The association between the height variable and theX-axis graph component makes the insert before, replace, insert after,and merge hotspots appropriate for the X-axis graph component. Incontrast, only the add component is appropriate for the Y-axis graphcomponent because of the non-existence of any association with avariable. The third table 331 identifies the set of appropriate elementdescriptors based on the variable associations of the X-axis and Y-axisgraph components. As illustrated on the table of FIG. 6, the associationof a continuous variable on the response axis and no variable on thefactor axis makes the points, box plot, bar chart, and histogram elementdescriptors appropriate element descriptors for data display. The thirdtable 331 identifies the points element descriptor as being active. Asystem may be configured to allow a user to select between the otherappropriate element descriptors, such as via a context menu.

FIG. 20 depicts a graph creation display region 340 during a subsequentselection and dragging of the weight variable 342 from the variableselection region 344. FIG. 21A depicts a graph creation display regionfollowing a further dragging of the weight variable to a Y-axis hotspot.Dragging the weight variable over the Y-axis hotspot 348 instructs thelive feedback drag-and-drop graph builder to generate a preview of thegraph display should the association between the weight variable and theY-axis graph component be made persistent. The live feedbackdrag-and-drop graph builder modifies the graph display to plot the datapoints 350 according to weight and height. A highlight 352 is applied toan area associated with the Y-axis graph component, identifying thetemporary nature of the association with the weight variable during thedragging operation. The live feedback drag-and-drop graph builder mayalso include a smoother plot 354 of height vs. weight upon theassociation of continuous variables with the axes graph components.

FIG. 21B depicts three tables identifying the state of the graphfollowing the dragging of the weight variable over the Y-axis hotspot.The first graph 356 identifies the associations between variables andgraph components. The height variable is associated with the Xcomponent, and the weight variable is associated with the Y component.Because the association between the weight variable and the Y graphcomponent is temporary during the dragging operation, an indicator 358notes that the association is tentative.

The second table 360 identifies drop zone hotspots that are currentlyavailable based on existing associations between variables and graphcomponents. Similar to FIG. 19B, the existence of an association betweena variable and the X graph component makes the X-axis insert before,replace, insert after, and merge hotspots available. Despite thetemporary association between the weight variable and the Y-axis graphcomponent, the Y-axis still only has an add drop hotspot available, asshown at 362. Additional hotspots are not made available until theassociation is made persistent via a dropping operation, as insertbefore, replace, insert after, and merge operations would not make sensewith relation to the weight variable at FIG. 21. The third table 364identifies element descriptors that are deemed appropriate by the livefeedback drag-and-drop graph builder. Based on the associations ofcontinuous variables with both the X and Y axes, the points, line,smoother, and bar chart element descriptors are deemed appropriate, withthe points and smoother descriptors being active by default.

FIG. 22 depicts a graph creation display region following a subsequentdropping of the weight variable on the Y-axis hotspot. Upon dropping theweight variable on the Y-axis hotspot 372 of the graph creation displayregion 370, the association between the weight variable and the Y-axisgraph component is made persistent. The plotting of the weight versusheight data remains, as shown at 374. If only a portion of the weightversus height data was plotted during the preview associated with thedragging operation, then the full set of data may be plotted afterdropping the weight variable in FIG. 22. The highlighting, depicted at352 in FIG. 21A, that indicated the temporary nature of the associationbetween the weight variable and the Y-axis graph component is removedfollowing the drop operation signifying the now persistent nature of theassociation.

FIG. 23 depicts a graph creation display region during a draggingoperation making a temporary association between a sex variable and agroup X hotspot. Following selection of the sex variable from thevariable selection region 378 of the graph creation display region 376,the sex variable has been dragged via a user manipulation device overthe group X hotspot 380. The live feedback drag-and-drop graph builderis then instructed to create a preview based on the temporaryassociation between the sex variable and the group X graph component. Asillustrated in FIG. 23, the temporary association between the sexvariable and the group X graph component results in the graph displaybeing split into two graph panels 382, 384, the first 382 depictingfemale weight versus height data, and the second 384 depicting maleweight versus height data. The live feedback drag-and-drop graph builderalso provides a highlight 386 of an area associated with the group Xgraph component to denote that the current association between the sexvariable and the group X graph component is temporary in nature.

FIG. 24 depicts a graph creation display region during a subsequentdragging of the sex variable to an overlay hotspot. Dragging the sexvariable off of the group X hotspot 392 of the graph creation displayregion 390 results in a disassociation of the sex variable and the groupX graph component. Dragging the sex variable over the overlay hotspot394 instructs the live feedback drag-and-drop graph calculator togenerate a preview of the graph display should a persistent associationbe made between the sex variable and the overlay graph component. Thelive feedback drag-and-drop graph builder highlights an area 396associated with the overlay graph component to denote the temporarynature of the association between the sex variable and the overlay graphcomponent. The live feedback drag-and-drop graph builder plots the maleand female weight versus height data points 398 along with smootherlines corresponding to the male weight versus height data 400 and thefemale weight versus height data 402. The live feedback drag-and-dropgraph builder may also plot the weight versus height data points 398 indifferent colors corresponding to male data points and female datapoints.

FIG. 25 depicts a graph creation display region following dropping thesex variable on the overlay hotspot. Upon dropping the sex variable onthe overlay hotspot 408 of the graph creation display region 406, theassociation between the overlay graph component and the sex variable ismade persistent. The element descriptor plots on the graph panel 410 areretained, and the highlight of the area corresponding to the overlaygraph component is removed to identify the persistent nature of theassociation between the sex variable and the overlay graph component.

FIG. 26 depicts a graph creation display region following picking up thesex variable from the overlay drag zone hotspot and dragging the sexvariable back over the group X drop hotspot. Dragging the sex variablefrom the overlay drag hotspot 414 of the graph creation display region412 disassociates the sex variable from the overlay graph component.Dragging the sex variable over the group X hotspot 416 returns the graphpanel preview 418 and highlighting 420 described with respect to FIG.23, via a temporary association between the sex variable and the group Xgraph component.

FIG. 27 depicts a graph creation display region following dropping thesex variable on the group X hotspot. Upon dropping the sex variable onthe group X hotspot 426 of the graph creation display region 424, theassociation between the group X graph component and the sex variable ismade persistent. The element descriptor plots on the graph panel 428 areretained, and the highlight of the area corresponding to the overlaygraph component is removed to identify the persistent nature of theassociation between the sex variable and the group X graph component.

FIG. 28A depicts a graph creation display region following dragging anage variable onto an insert after hotspot on the Y-axis. Dragging theage variable onto the Y-axis insert after hotspot 432 of the graphcreation display region 430 creates a temporary association between theage variable and the Y-axis graph component as depicted in the firsttable 439 of FIG. 28B. The live feedback drag-and-drop graph buildercreates a preview of the graph display if the age—Y-axis association wasmade persistent by presenting a row of age versus height by sex plots434 above a row of weight versus height by sex plots 436. An areaassociated with the insert before function of the Y-axis graph componentis highlighted, as shown at 438, to identify the temporary nature of theassociation between the age variable and the Y-axis graph component.

The second table 440 lists the active hotspots contained in thecomputer-human interface display based on the associations shown in thefirst table 434. The existence of the height, weight, and sex variables'associations make more hotspot options, such as insert before, insertafter, and replace, appropriate when compared to the group Y graphcomponent having no variable associations and only an add hotspot. Thethird table 442 identifies element descriptors deemed appropriate basedupon the types of variables associated with the X and Y axes.

FIG. 29 depicts a graph creation display region during a subsequentdragging of the age variable over a replace hotspot associated with theY-axis graph component. Dragging the age variable over the Y-axisreplace hotspot 446 of the graph creation display region 444 results ina temporary association between the age variable and the Y-axis graphcomponent. The live feedback drag-and-drop graph builder provides apreview of the graph display should this association be made permanentby displaying an age versus height by sex plot at 448. A region 450associated with the Y-axis graph component replace function ishighlighted to depict the temporary nature of the association betweenthe age variable and the Y-axis graph component. The prior associationbetween the weight variable and the Y-axis graph component may beretained so that the display may revert should the association betweenthe age variable and the Y-axis graph component not be made persistent.This may be accomplished by allowing the age—Y-axis association having atemporary indicator supersede the persistent weight association duringpreview creation, or if a temporary graph display data structure isutilized, then the weight association may be retained in the main graphdisplay data structure while the age association is stored in thepreview-generating temporary graph display data structure during thedragging operation.

FIG. 30 depicts a graph creation display region following dragging theage variable onto an insert before hotspot on the Y-axis. Dragging theage variable onto the Y-axis insert before hotspot 454 of the graphcreation display region 452 creates a temporary association between theage variable and the Y-axis graph component. The live feedbackdrag-and-drop graph builder creates a preview of the graph display ifthe age—Y-axis association was made persistent by presenting a row ofage versus height by sex plots 456 below a row of weight versus heightby sex plots 458. An area associated with the insert after function ofthe Y-axis graph component is highlighted, as shown at 460, to identifythe temporary nature of the association between the age variable and theY-axis graph component.

FIG. 31 depicts a graph creation display region following dragging theage variable onto a merge hotspot on the Y-axis. Dragging the agevariable over the merge hotspot 464 of the graph creation display region462 instructs the live feedback drag-and-drop graph builder to generatea preview showing what the graph display would show if the associationbetween the age variable and the Y-axis component were made persistent.The live feedback drag-and-drop graph builder provides weight versusheight by sex plots 466 as well as age versus height by sex plots 468 onthe same Y-axis scaling. An area associated with the Y-axis mergefunction is highlighted, as shown at 470, to depict the temporary natureof the relationship between the age variable and the Y-axis via themerge hotspot 464.

FIG. 32 depicts a graph creation display region following dragging theage variable onto an insert before hotspot on the X-axis. Dragging theage variable over the insert before hotspot 474 of the graph creationdisplay region 472 instructs the live feedback drag-and-drop graphbuilder to generate a preview showing the graph display with anassociation between the age variable and the X-axis component. A weightversus height and age by sex plot is provided along with highlighting476 identifying the temporary nature of the relationship between theX-axis and the age variable.

FIG. 33 depicts a graph creation display region following a subsequentdragging of the age variable onto the group Y hotspot 482. Dragging theage variable onto the group Y hotspot 482 of the graph creation displayregion 480 generates a preview that divides the graph creation displayregion horizontally into a plurality of sub-graphs, where each rowrepresents a single age or group of ages. The live feedbackdrag-and-drop graph builder also highlights an area 484 associated withthe group Y graph component to identify the association between the agevariable and the group Y graph component as being temporary.

FIG. 34 depicts a graph creation display region following a dragging ofthe age variable onto the insert before group X hotspot. Dragging theage variable onto the insert before group X hotspot 488 of the graphcreation display region 486 generates a temporary association betweenthe group X graph component and the age variable, such that the graphcreation display region is divided vertically into a plurality ofsub-graphs by age and then by sex. The live feedback drag-and-drop graphbuilder also provides a highlighting of an area 490 associated with thegroup X insert before command to identify the association between theage variable and the group X graph component as being temporary.

FIG. 35 depicts a graph creation display region following a dragging ofthe age variable onto the group X replace hotspot. Dragging the agevariable over the group X replace hotspot 494 of the graph creationdisplay region 492 creates a temporary association between the group Xgraph component and the age variable. The previous association betweenthe group X graph component and the sex variable may be retained so thatthe live feedback drag-and-drop graph builder may revert the graphshould the association between the age variable and the group X graphcomponent not be made persistent through a dropping operation. The livefeedback drag-and-drop graph builder provides a preview that divides thegraph creation display region vertically into a plurality of sub-graphsdepicting different age values. A highlighting is also applied to anarea 496 associated with the group X replace function identifying thetemporary nature of the association between the age variable and thegroup X graph component.

FIG. 36 depicts a graph creation display region following a dragging ofthe age variable over the group X insert after hotspot. Dragging the agevariable over the group X insert after hotspot 502 of the graph creationdisplay region 500 creates a temporary association between the agevariable and the group X graph component. The live feedbackdrag-and-drop graph builder generates a preview illustrating what thegraph display would show if the association was made persistent. Thegraph panel is divided vertically into a plurality of sub-graphsaccording to sex and then to age. An area 504 associated with the groupX insert after function is highlighted to depict the temporary nature ofthe association between the age variable and the group X graphcomponent.

FIG. 37 depicts a graph creation display region following a dragging ofthe age variable over the overlay hotspot. Dragging the age variableover the overlay hotspot 512 of the graph creation display region 510instructs the live feedback drag-and-drop graph calculator to generate apreview of the graph display should a persistent association be madebetween the age variable and the overlay graph component. The livefeedback drag-and-drop graph builder highlights an area 514 associatedwith the overlay graph component to denote the temporary nature of theassociation between the age variable and the overlay graph component.The live feedback drag-and-drop graph builder plots the individual ageweight versus height data points 516 along with smoother lines 518corresponding to the each age's weight versus height data. The livefeedback drag-and-drop graph builder may also plot the weight versusheight data points 516 in different colors corresponding to each age'sdata points.

FIG. 38 depicts a graph creation display region following dropping theage variable on the overlay hotspot. Upon dropping the age variable onthe overlay hotspot 522 of the graph creation display region 520, theassociation between the overlay graph component and the age variable ismade persistent. The element descriptor plots on the graph panels 524are retained, and the highlight of the area corresponding to the overlaygraph component is removed to identify the persistent nature of theassociation between the age variable and the overlay graph component.

FIG. 39 depicts a computer-implemented method for providing immediate ornear real-time graph data feedback to a user during a drag-and-dropgraph display creation process. In the computer-implemented method 530,a user is provided with a user-viewable graph display defined by a maingraph display data structure at 532. At 534, a data column selectionregion is provided, and at 536 a plurality of graph hotspots, eachassociated with a graph display parameter, are defined. Data columnselection data is received at 538 along with first data column draggingdata at 540. A temporary graph display data structure is generated basedon the first column dragging at 542, and the graph display is modifiedaccording to the temporary graph display data structure at 544. Columndrop data is received at 546, the main graph display data structure isupdated to reflect the contents of the temporary graph display datastructure at 548, and at 550, the graph display is displayed accordingto the main graph display data structure.

FIG. 40 depicts a computer-implemented method for providing immediate ornear real-time graph data feedback to a user during a drag-and-dropgraph display creation process. In the computer-implemented method 560,at 562, a graph creation display region is displayed on a computer-humaninterface display, the graph creation display region including at leastone axis. A graph display data structure is configured to be stored in acomputer-readable storage medium and to contain associations betweengraph display components and variables. The associations contained inthe graph display data structure define what graph components are to bedisplayed on the graph creation display region. At 564, a variableselection region is displayed on the computer-human interface displaydevice for selection via a user manipulation device of a variable to begraphically displayed on the computer-human interface device. Thecomputer-human interface device contains a plurality of graph hotspots,where a graph hotspot is a region on the computer-human interfacedisplay that is associated with a graph display component. A usermanipulation device is used to drag a variable from the variableselection region, and user manipulation device variable draggingoperation data is received at 566. Dragging a variable to a graphhotspot results in a temporary association between the associated graphdisplay component and the dragged variable. While the variable is beingdragged over a hotspot, at 568, the display of the graph creationdisplay region on the computer-human interface display device ismodified to provide immediate or near real-time feedback to the user ofa temporary association between the associated graph display componentand the dragged variable.

While examples have been used to disclose the invention, including thebest mode, and also to enable any person skilled in the art to make anduse the invention, the patentable scope of the invention is defined byclaims, and may include other examples that occur to those skilled inthe art. Accordingly, the examples disclosed herein are to be considerednon-limiting. As an illustration, the systems and methods may beimplemented on various types of computer architectures, such as forexample on a networked system (as shown at 800 on FIG. 41), or on asingle general purpose computer or workstation, or in a client-serverconfiguration, or in an application service provider configuration.

It is further noted that the systems and methods may include datasignals conveyed via networks (e.g., local area network, wide areanetwork, internet, combinations thereof, etc.), fiber optic medium,carrier waves, wireless networks, etc. for communication with one ormore data processing devices. The data signals can carry any or all ofthe data disclosed herein that is provided to or from a device.

Additionally, the methods and systems described herein may beimplemented on many different types of processing devices by programcode comprising program instructions that are executable by the deviceprocessing subsystem. The software program instructions may includesource code, object code, machine code, or any other stored data that isoperable to cause a processing system to perform the methods andoperations described herein. Other implementations may also be used,however, such as firmware or even appropriately designed hardwareconfigured to carry out the methods and systems described herein.

The systems' and methods' data may be stored and implemented in one ormore different types of computer-implemented ways, such as differenttypes of storage devices and programming constructs (e.g., data stores,RAM, ROM, Flash memory, flat files, databases, programming datastructures, programming variables, IF-THEN (or similar type) statementconstructs, etc.). It is noted that data structures describe formats foruse in organizing and storing data in databases, programs, memory, orother computer-readable media for use by a computer program.

The systems and methods may be provided on many different types ofcomputer-readable media including computer storage mechanisms (e.g.,CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) thatcontain instructions (e.g., software) for use in execution by aprocessor to perform the methods' operations and implement the systemsdescribed herein.

The computer components, software modules, functions, data stores anddata structures described herein may be connected directly or indirectlyto each other in order to allow the flow of data needed for theiroperations. It is also noted that a module or processor includes but isnot limited to a unit of code that performs a software operation, andcan be implemented for example as a subroutine unit of code, or as asoftware function unit of code, or as an object (as in anobject-oriented paradigm), or as an applet, or in a computer scriptlanguage, or as another type of computer code. The software componentsand/or functionality may be located on a single computer or distributedacross multiple computers depending upon the situation at hand.

It should be understood that as used in the description herein andthroughout the claims that follow, the meaning of “a,” “an,” and “the”includes plural reference unless the context clearly dictates otherwise.Also, as used in the description herein and throughout the claims thatfollow, the meaning of “in” includes “in” and “on” unless the contextclearly dictates otherwise. Finally, as used in the description hereinand throughout the claims that follow, the meanings of “and” and “or”include both the conjunctive and disjunctive and may be usedinterchangeably unless the context expressly dictates otherwise; thephrase “exclusive or” may be used to indicate situation where only thedisjunctive meaning may apply.

1. A computer-implemented method for creating a graph, comprising:providing, using one or more data processors, a variable selectionregion including a variable for display; providing, using the one ormore data processors, a graph creation region that includes a pluralityof graph components for display, wherein at least one graph component isan axis; defining, using the one or more data processors, one or morehotspots on the graph creation region, wherein a hotspot covers aportion of the graph creation region; associating, using the one or moredata processors, a hotspot with a graph component, wherein the hotspotis used to generate an association between the graph component and avariable; generating, using the one or more data processors, anassociation between a variable and the graph component when a particularvariable from the variable selection region is dragged onto the hotspotassociated with the graph component; updating, using the one or moredata processors, the graph creation region using the association,wherein the updated graph creation region displays a preview of theassociation between the particular variable and the graph component;confirming, using the one or more data processors, the associationbetween the particular variable and the graph component displayed in thepreview, wherein the association is confirmed when the particularvariable is dropped onto the hotspot associated with the graphcomponent; and using, using the one or more data processors, theconfirmed association to redefine the one or more hotspots to includeadditional available hotspots on the graph creation region.
 2. Themethod of claim 1, wherein one of the hotspots is an axis hotspot, andwherein dragging the particular variable onto the axis hotspot resultsin the particular variable being plotted on the graph creation region inreal-time.
 3. The method of claim 2, wherein one of the hotspots is aninsert-before hotspot, wherein dragging a second variable onto theinsert-before hotspot results in the graph creation region being dividedto display an additional row or column of sub-graphs, and wherein theadditional sub-graphs plot the second variable on the graph creationregion.
 4. The method of claim 2, wherein one of the hotspots is a mergehotspot, and wherein dragging a second variable onto the merge hotspotresults in the second variable being plotted along an axis associatedwith the merge hotspot on the graph creation region.
 5. The method ofclaim 1, wherein one of the hotspots is an X group hotspot, and whereindragging the particular variable onto the X group hotspot results in thegraph creation region being divided vertically into a plurality ofsub-graphs.
 6. The method of claim 5, wherein one of the hotspots is a Ygroup hotspot, and wherein dragging a second variable onto the Y grouphotspot results in the graph creation region being divided horizontallyinto an additional plurality of sub-graphs.
 7. The method of claim 1,wherein updating the graph creation region includes highlightingmodifications based upon the association.
 8. The method of claim 7,wherein highlighting includes applying a transparent, coloredhighlighting to the modifications.
 9. The method of claim 7, wherein thehighlighting is removed when the particular variable is dropped onto thehotspot.
 10. The method of claim 1, wherein the updating is reversedwhen the particular variable is dragged off of the hotspot.
 11. Themethod of claim 1, further comprising: determining a first format forplotting data based upon associations between variables and graphcomponents, wherein the first format is used for default plotting. 12.The method of claim 11, further comprising: determining an additionalplurality of acceptable formats based upon associations betweenvariables and graph components, wherein additional acceptable formatsare available for selection.
 13. The method of claim 1, wherein thehotspots include at least two of: an X axis hotspot, a Y axis hotspot, agroup X hotspot, a group Y hotspot, an overlay hotspot, an insert beforehotspot, an insert after hotspot, a merge hotspot, and an order hotspot.14. The method of claim 1, wherein generating the association uses anassociation data structure.
 15. The method of claim 14, wherein theassociation data structure is discarded when the particular variable isdragged off of the hotspot.
 16. A system for creating a graph,comprising: one or more processors; one or more computer-readablestorage mediums containing instructions configured to cause the one ormore processors to perform operations including: providing a variableselection region including a variable for display; providing a graphcreation region that includes a plurality of graph components fordisplay, wherein at least one graph component is an axis; defining oneor more hotspots on the graph creation region, wherein a hotspot coversa portion of the graph creation region; associating a hotspot with agraph component, wherein the hotspot is used to generate an associationbetween the graph component and a variable; generating an associationbetween a variable and the graph component when a particular variablefrom the variable selection region is dragged onto the hotspotassociated with the graph component; updating the graph creation regionusing the association, wherein the updated graph creation regiondisplays a preview of the association between the particular variableand the graph component; confirming the association between theparticular variable and the graph component displayed in the preview,wherein the temporary association is confirmed when the particularvariable is dropped onto the hotspot associated with the graphcomponent; and using the confirmed association to redefine the one ormore hotspots to include additional available hotspots on the graphcreation region.
 17. A computer-program product for creating a graph,tangibly embodied in a machine-readable storage medium, includinginstructions configured to cause a data processing apparatus to: providea variable selection region including a variable for display; provide agraph creation region that includes a plurality of graph components,wherein at least one graph component is an axis for display; define oneor more hotspots on the graph creation region, wherein a hotspot coversa portion of the graph creation region; associate a hotspot with a graphcomponent, wherein the hotspot is used to generate an associationbetween the graph component and a variable; generate a temporaryassociation between a variable and the graph component when a particularvariable from the variable selection region is dragged onto the hotspotassociated with the graph component; update the graph creation regionusing the temporary association, wherein the updated graph creationregion displays a preview of the association between the particularvariable and the graph component; confirm the temporary associationbetween the particular variable and the graph component displayed in thepreview, wherein the temporary association is confirmed when theparticular variable is dropped onto the hotspot associated with thegraph component; and use the confirmed association to redefine the oneor more hotspots to include additional available hotspots on the graphcreation region.